package org.example.laboratorymanagement.controller;

import cn.hutool.core.io.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.example.laboratorymanagement.pojo.Result;
import org.example.laboratorymanagement.util.AliOSSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@Slf4j
@CrossOrigin
@RestController
@RequestMapping("/files")
public class FileController {

    @Autowired
    private AliOSSUtils aliOSSUtils;

    @PostMapping
    public Result upload(MultipartFile file) throws IOException {
        log.info("文件上传，文件名：｛｝", file);

        // 调用阿里云OSS工具类进行上传
        String url = aliOSSUtils.upload(file);
        log.info("文件上传成功，文件访问的url：{}", url);

        return Result.success(url);
//        String originalFilename = file.getOriginalFilename(); // 文件称加后缀 aaa.txt
//
//        String mainName = FileUtil.mainName(originalFilename); // aaa
//        log.info("mainName:{}", mainName);
//        String exName = originalFilename.substring(originalFilename.lastIndexOf(".")); //后缀 .txt
//        log.info("exName:{}", exName);
//
//        if (!FileUtil.exist(ROOT_PATH)) {
//            FileUtil.mkdir(ROOT_PATH); // 如果当前文件的父级目录不存在，就创建
//        }
//
//        if (FileUtil.exist(ROOT_PATH + File.separator + originalFilename)) { // 如果上传的文件已经存在，那么就重命名一个文件名称
//            originalFilename = System.currentTimeMillis() + "_" + mainName + exName;
//
//        }
//        File saveFile = new File(ROOT_PATH + File.separator + originalFilename);
//        file.transferTo(saveFile); // 存储文件到本地磁盘
//        String url = "http://localhost:8080/files/" + originalFilename;
//        log.info("url:{}", url);
//        return Result.success(url);
    }

//    @GetMapping("/｛fileName｝")
//    public void download(HttpServletResponse response, String fileName) throws IOException {
//        response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); // 附件下载
//        String filePath = ROOT_PATH + File.separator + fileName;
//        if (!FileUtil.exist(filePath)){
//            return;
//        }
//
//        byte[] btyes = FileUtil.readBytes(filePath);
//        ServletOutputStream out = response.getOutputStream();
//        out.write(btyes); // 数组是字节数组，是文件的字节流数组
//        out.flush(); // 刷新
//        out.close();
//    }


}
